<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

/**
 * Esta libreria, tiene la intencion de que trabajemos sobre templates comunes,
 * estas templates comunes, estan ubicadas dentro del directorio views/templates/
 *
 * los metodos de esta clase llaman a la template del mismo nombre y se encargan
 * de cargar todos los datos que el template necesita, para desplegarse bien.
 *
 * cada metodo toma 2 argumentos, el nombre de la vista que se cargara como parte central del template
 * y los datos que deben ser pasados a esa vista.
 *
 * como precaucion, los variables que se utilizan dentro de las templates siempre estaran entre los caracteres "_"
 * por ejemplo: "$_variable_"
 *
 * las templates pueden estar compuestas, por segmentos, estos segmentos se repiten
 * dentro de las templetas y tambien son vistas validas para codeigniter.
 *
 * los segmentos estan ubicados dentro del directorio views/templates/segments
 * y se separan en body y head, la idea es que las templates incluyan a estas piezas comunes.
 *
 * entre estas piezas comunes, se encuentra el titulo de la web, las declaraciones de hojas de estilo (css)
 * las rutinas de javascript y elementos comunes como el header y el footer
 *
 *
 * @author daniel
 */
class Templator {

	private $ci;

	public function __construct() {
		$this->ci =& get_instance();
	}

	public function template_con_buscador($viewName = "", $viewData = array()) {
		$this->ci->load->model("buscadores/buscadores_model");
		$templateData["_datos_para_buscador_simple"] = $this->ci->buscadores_model->datos_para_buscador_simple();

		$this->_cargar_template($viewName, $viewData, "template_con_buscador", $templateData);
	}

	public function template_sin_buscador($viewName = "", $viewData = array()) {
		$this->_cargar_template($viewName, $viewData, "template_sin_buscador");
	}

	private function _cargar_template(
			$viewName,
			$viewData,
			$templateName,
			$templateData = array()) {

		$templateData["_viewName_"] = $viewName;
		$templateData["_viewData_"] = $viewData;

		$this->ci->load->view("templates/" . $templateName, $templateData);
	}

}
?>
